An Empirical Study on Design Pattern Usage on Open-Source Software
نویسندگان
چکیده
Currently, open source software communities are thriving and the number of projects that are available through well known code repositories is rapidly increasing over the years. The amount of code that is freely available to developers facilitates high reuse opportunities. One of the major concerns of developers when reusing code is the quality of the code that is going to be reused. Design patterns are well known solutions that are reported to produce substantial benefits with respect to software quality. In this paper, we investigate the extent to which design patterns are employed in open source software. More specifically, this study reports empirical results based on the number and type of design patterns retrieved from open source software projects. Up to now, one hundred and eight (108) open source software projects of various characteristics have been considered. The results of the study suggest that several patterns are more frequently used in open source software than others, that some patterns are more applicable in some categories than others and that program size, number of downloads, days of project activity and the number of developers are crucial factors that influence the use of design patterns in open source software project.
منابع مشابه
Relationship between design patterns defects and crosscutting concern scattering degree: an empirical study
Design patterns are solutions to recurring design problems, aimed at increasing reuse, code quality and, above all, maintainability and resilience to changes. Despite such advantages, the usage of design patterns implies the presence of crosscutting code implementing the pattern usage and access from other system components. When the system evolves, the presence of crosscutting code can cause r...
متن کاملAn empirical investigation on the reusability of design patterns and software packages
Nowadays open-source software communities are thriving. Successful open-source projects are competitive and the amount of source code that is freely available offers great reuse opportunities to software developers. Thus, it is expected that several requirements can be implemented based on open source software reuse. Additionally, design patterns, i.e. well-known solution to common design probl...
متن کاملA Method to Investigate Software Evolutions Using Design Pattern Detection Tool
In software designing, design patterns are expected to help for implementing with clear design intention with higher quality. However, selecting appropriate patterns is not simple task, and design patterns are sometimes deployed exploratory without properly defined process. In order to clarify design patterns’ contribution to the quality and productivity, it is very important to investigate des...
متن کاملDesign Pattern Decay – a Study of Design Pattern Grime and Its Impact on Quality and Technical Debt
Technical debt is a financial metaphor describing the tradeoff between the short term benefits gained and long term consequences of design and implementation shortcuts taken over the evolution of a software product. These shortcuts typically manifest as design disharmonies such as code smells, anti-patterns, design pattern grime, modularity violations, or violations of good coding rules. Curren...
متن کاملMyth or Reality? Analyzing the Effect of Design Patterns on Software Maintainability
Although the belief of utilizing design patterns to create better quality software is fairly widespread, there is relatively little research objectively indicating that their usage is indeed beneficial. In this paper we try to reveal the connection between design patterns and software maintainability. We analyzed more than 300 revisions of JHotDraw, a Java GUI framework whose design relies heav...
متن کامل